package com.portal.entities;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

@Entity
@Table(name="VW_PROTESTO_CONTRATO")
@NamedQueries({@NamedQuery(name="Contrato.findContratosByNumero", query="select c from Contrato c where c.numeroContrato = :numeroContrato"),
	@NamedQuery(name="Contrato.findContratosByCnpj", query="select c from Contrato c where c.cnpjDevedor = :cnpjDevedor"),
	@NamedQuery(name="Contrato.findContratosByNome", query="select c from Contrato c where c.nomeDevedor like :nomeDevedor")})

public class Contrato {

	public static final String FIND_BY_NUMERO_DO_CONTRATO = "Contrato.findContratosByNumero";
	public static final String FIND_BY_CNPJ = "Contrato.findContratosByCnpj";
	public static final String FIND_BY_NOME = "Contrato.findContratosByNome";

	@Id
	@Column(name="ID_CONTRATO")
	private Long id;

	@Column(name="CD_ORIGEM")
	private Long origem;

	@Column(name="CD_ORIGEMCHAVE")
	private Long origemChave;

	@Column(name="DT_EMISSAOTITULO")
	private Date dataEmissaoTitulo;

	@Column(name="VL_VALORTITULO")
	private BigDecimal valorTitulo;

	@Column(name="NR_TAXAJUROS")
	private BigDecimal taxaJuros;

	@Column(name="NM_CAMINHOARQUIVOCONTRATO")
	private String caminhoArquivoContrato;

	@Column(name="NM_INFOACEITE")
	private String infoAceite;

	@Column(name="NM_OPERACAO")
	private String operacao;

	@Column(name="NR_ESPECIETITULO")
	private Integer especieTitulo;

	@Column(name="NM_IRREGULARIDADECONTRATO")
	private String irregularidadeContrato;

	@Column(name="NM_GARANTIA")
	private String garantia;

	@Column(name="NM_TIPOENDOSSO")
	private String tipoEndosso;

	@Column(name="NM_DEVEDOR")
	private String nomeDevedor;

	@Column(name="NM_ENDERECODEVEDOR")
	private String enderecoDevedor;

	@Column(name="NM_BAIRRODEVEDOR")
	private String bairroDevedor;

	@ManyToOne(optional=false)
	@JoinColumn(name="NR_SACADOR")
	private Empresa sacador;

	@ManyToOne(optional=false)
	@JoinColumn(name="NR_CEDENTE")
	private Empresa cedente;

	@Column(name="NR_ARQUIVO")
	private Integer numeroArquivo;

	@Column(name="NR_CEPDEVEDOR")
	private Long cepDevedor;

	@Column(name="NR_CONTRATO")
	private Long numeroContrato;

	@Column(name="NR_CNPJDEVEDOR")
	private Long cnpjDevedor;

	@Column(name="NM_CIDADEDEVEDOR")
	private String cidadeDevedor;

	@Column(name="SG_UFDEVEDOR")
	private String ufDevedor;

	@Column(name="NR_TIPOVIACONTRATO")
	private Integer tipoViaContrato;

	@Column(name="NM_SEGMENTO")
	private String nomeSegmento;

	@Column(name="NM_SUBSEGMENTO")
	private String nomeSubSegmento;

	@Column(name="NM_AGENCIA")
	private String nomeAgencia;

	@Column(name="NM_TPCONTRATOBANCO")
	private String numeroTipoContratoBanco;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getOrigem() {
		return origem;
	}

	public void setOrigem(Long origem) {
		this.origem = origem;
	}

	public Long getOrigemChave() {
		return origemChave;
	}

	public void setOrigemChave(Long origemChave) {
		this.origemChave = origemChave;
	}

	public Date getDataEmissaoTitulo() {
		return dataEmissaoTitulo;
	}

	public void setDataEmissaoTitulo(Date dataEmissaoTitulo) {
		this.dataEmissaoTitulo = dataEmissaoTitulo;
	}

	public BigDecimal getValorTitulo() {
		return valorTitulo;
	}

	public void setValorTitulo(BigDecimal valorTitulo) {
		this.valorTitulo = valorTitulo;
	}

	public BigDecimal getTaxaJuros() {
		return taxaJuros;
	}

	public void setTaxaJuros(BigDecimal taxaJuros) {
		this.taxaJuros = taxaJuros;
	}

	public String getCaminhoArquivoContrato() {
		return caminhoArquivoContrato;
	}

	public void setCaminhoArquivoContrato(String caminhoArquivoContrato) {
		this.caminhoArquivoContrato = caminhoArquivoContrato;
	}

	public String getInfoAceite() {
		return infoAceite;
	}

	public void setInfoAceite(String infoAceite) {
		this.infoAceite = infoAceite;
	}

	public String getOperacao() {
		return operacao;
	}

	public void setOperacao(String operacao) {
		this.operacao = operacao;
	}

	public Integer getEspecieTitulo() {
		return especieTitulo;
	}

	public void setEspecieTitulo(Integer especieTitulo) {
		this.especieTitulo = especieTitulo;
	}

	public String getIrregularidadeContrato() {
		return irregularidadeContrato;
	}

	public void setIrregularidadeContrato(String irregularidadeContrato) {
		this.irregularidadeContrato = irregularidadeContrato;
	}

	public String getGarantia() {
		return garantia;
	}

	public void setGarantia(String garantia) {
		this.garantia = garantia;
	}

	public String getTipoEndosso() {
		return tipoEndosso;
	}

	public void setTipoEndosso(String tipoEndosso) {
		this.tipoEndosso = tipoEndosso;
	}

	public String getNomeDevedor() {
		return nomeDevedor;
	}

	public void setNomeDevedor(String nomeDevedor) {
		this.nomeDevedor = nomeDevedor;
	}

	public String getEnderecoDevedor() {
		return enderecoDevedor;
	}

	public void setEnderecoDevedor(String enderecoDevedor) {
		this.enderecoDevedor = enderecoDevedor;
	}

	public String getBairroDevedor() {
		return bairroDevedor;
	}

	public void setBairroDevedor(String bairroDevedor) {
		this.bairroDevedor = bairroDevedor;
	}

	public Integer getNumeroArquivo() {
		return numeroArquivo;
	}

	public void setNumeroArquivo(Integer numeroArquivo) {
		this.numeroArquivo = numeroArquivo;
	}

	public Long getCepDevedor() {
		return cepDevedor;
	}

	public void setCepDevedor(Long cepDevedor) {
		this.cepDevedor = cepDevedor;
	}

	public Long getNumeroContrato() {
		return numeroContrato;
	}

	public void setNumeroContrato(Long numeroContrato) {
		this.numeroContrato = numeroContrato;
	}

	public Long getCnpjDevedor() {
		return cnpjDevedor;
	}

	public void setCnpjDevedor(Long cnpjDevedor) {
		this.cnpjDevedor = cnpjDevedor;
	}

	public String getCidadeDevedor() {
		return cidadeDevedor;
	}

	public void setCidadeDevedor(String cidadeDevedor) {
		this.cidadeDevedor = cidadeDevedor;
	}

	public String getUfDevedor() {
		return ufDevedor;
	}

	public void setUfDevedor(String ufDevedor) {
		this.ufDevedor = ufDevedor;
	}

	public Integer getTipoViaContrato() {
		return tipoViaContrato;
	}

	public void setTipoViaContrato(Integer tipoViaContrato) {
		this.tipoViaContrato = tipoViaContrato;
	}

	public String getNomeSegmento() {
		return nomeSegmento;
	}

	public void setNomeSegmento(String nomeSegmento) {
		this.nomeSegmento = nomeSegmento;
	}

	public String getNomeSubSegmento() {
		return nomeSubSegmento;
	}

	public void setNomeSubSegmento(String nomeSubSegmento) {
		this.nomeSubSegmento = nomeSubSegmento;
	}

	public String getNomeAgencia() {
		return nomeAgencia;
	}

	public void setNomeAgencia(String nomeAgencia) {
		this.nomeAgencia = nomeAgencia;
	}

	public String getNumeroTipoContratoBanco() {
		return numeroTipoContratoBanco;
	}

	public void setNumeroTipoContratoBanco(String numeroTipoContratoBanco) {
		this.numeroTipoContratoBanco = numeroTipoContratoBanco;
	}

	public Empresa getSacador() {
		return sacador;
	}

	public void setSacador(Empresa sacador) {
		this.sacador = sacador;
	}

	public Empresa getCedente() {
		return cedente;
	}

	public void setCedente(Empresa cedente) {
		this.cedente = cedente;
	}
}
